技術問答
技術文章
iT 徵才
Tag
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2023 iThome 鐵人賽
DAY
15
0
Software Development
從實戰中學習:Take Home Assignment review & refactor
系列 第
15
篇
[Day 15] 作業三:平台產品銷售收費機制的收銀系統 -專案review
15th鐵人賽
take home assignment
golang
Moscle.dev
2023-09-29 19:15:04
333 瀏覽
分享至
平台產品銷售收費機制的收銀系統 -專案review
專案Repo
Readme review
首先來分析作業的
Readme
,
標題與描述:
"BitGin Assignment"這個標題雖然直接,但可以更符合作業內容的標題。
在"敘述"部分,可以加上一個簡短的一句話摘要,描述這是什麼,例如:"這是一個用Golang實作的平台收銀系統,支援多種收費模式。"
使用方式:
使用的變數命名可以讓用戶更容易理解,例如goodPrice可以更名為productPrice。
可以加入註解以幫助使用者理解每一步的用途。例如,在system := &cashier.ChargingSystem{...}這行後面,可以加入:// 初始化收銀系統。
額外建議:
安裝指南:
可以提供從安裝到執行程式的步驟
測試:
有單元測試,應該提供如何執行這些測試。
錯誤處理和日誌:
如果程式碼中包含錯誤處理或日誌,可以在README中提供一些範例或說明。
格式和結構:
在段落之間加入一些空行,可以使內容看起來更加清楚。
考慮使用列表 (bulleted 或 numbered list) 來組織某些信息,例如主要收費模式。
目錄結構 review
分層結構:
已經適當地將核心業務邏輯(cashier)和指令應用程式(cmd)區分開來,這是常見的Go專案結構。
cashier package:
如果每種收費模式的邏輯都較為複雜,考慮將每種模式分成其自己的檔案,例如normal.go, vip.go, points.go等。
cashier_test.go應該包含了各種情境的單元測試。考慮增加邊際情況的測試和當平台舉行優惠活動時的測試。
cmd package:
main.go是一個簡單的命令行界面,主要的邏輯在cashier package中。
可以考慮加入指令參數或配置選項來使程式更具彈性。
README.md:
確保提供清晰的說明、使用方式、安裝指南等。
.gitignore:
確保.gitignore包含了Go常見的忽略項目,例如*.exe, *.out, /vendor/, *.log, .DS_Store等。
其他:
若有多種收費策略,可能會需要一個策略模式或其他適合的設計模式。檢查cashier.go是否已經考慮到這一點。
若專案可能會進行擴充,考慮使用interface進行解耦,以確保後續增加新的收費模式時不會影響既有的程式。
留言
追蹤
檢舉
上一篇
[Day 14] 作業三:平台產品銷售收費機制的收銀系統 - 需求檢視
下一篇
[Day 16] 作業三:平台產品銷售收費機制的收銀系統 - Code review
系列文
從實戰中學習:Take Home Assignment review & refactor
共
30
篇
目錄
RSS系列文
訂閱系列文
11
人訂閱
26
[Day 26] Simple Auth App:專案始動
27
[Day 27] Simple Auth App:ORM & DB setting
28
[Day 28] Simple Auth App:註冊、登入實作
29
[Day 29] Simple Auth App : 修復TypeORM 問題與DataSource
30
[Day 30] Simple Auth App : 來做個收尾
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
19747
篇
完賽人數
529
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
碩士學歷能幫助我突破職涯天花板嗎?
桌機三更半夜自動開機不知在幹啥?是在下載還是在上傳資料?嚇死寶寶.去查設定我沒有設定在三更半夜更新或是掃毒呀!去查紀錄亦沒有當日凌晨的瀏覽紀錄,這到底是怎麼一回事,要如何查詢?是被安裝了病毒軟體?
群輝NAS套件Docker部署Outline
如何讓Windows 11 Professional 開啟Synology DS925+網路芳鄰的速度加快?
librenms 25.4.0 重開機都要重新設定
維護合約的合理性
熱門回答
碩士學歷能幫助我突破職涯天花板嗎?
群輝NAS套件Docker部署Outline
librenms 25.4.0 重開機都要重新設定
桌機三更半夜自動開機不知在幹啥?是在下載還是在上傳資料?嚇死寶寶.去查設定我沒有設定在三更半夜更新或是掃毒呀!去查紀錄亦沒有當日凌晨的瀏覽紀錄,這到底是怎麼一回事,要如何查詢?是被安裝了病毒軟體?
維護合約的合理性
熱門文章
D30|AI 時代的資訊判讀力:防詐、反假、識謊的新資安素養
資安入門與實務應用介紹 28:APT(高階持續性威脅)攻擊解析與防範方法
資安入門與實務應用介紹 29:智能合約漏洞與加密貨幣詐騙案例分析
Day 7:防火牆配置與流量過濾(Firewall Configuration and Traffic Filtering)
Day 25:社交工程防範訓練方法(Social Engineering Defense Training)
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}